package com.itc.api.utils;


import cn.hutool.jwt.JWT;
import cn.hutool.jwt.JWTUtil;

import java.util.Map;

/**
 * 类描述 -> JWT工具类
 *
 * @author Navcoo
 * @date 2024-11-19
 */
public class JWTUtils {

    /**
     * 生成token使用的预定义密钥
     */
    private static final String SECRET = "!Q@W#E$R";


    /**
     * 根据输入的键值对Map生成JWT令牌
     * 该方法主要用于创建一个带有过期时间及指定算法签名的JWT令牌
     *
     * @param map 包含令牌payload数据的键值对Map，其中键为claim名称，值为claim值
     * @return 返回生成的JWT令牌字符串
     */
    public static String getToken(Map<String, Object> map) {
        String token = JWTUtil.createToken(map, SECRET.getBytes());
        return token;
    }


    /**
     * 验证token 合法性
     */
    public static JWT verify(String token) {
        //如果有任何验证异常，此处都会抛出异常
        return JWTUtil.parseToken(token);
    }
}
